/*
 *Autor: Anderson Campos Cardoso
 *
 *Conteúdo: Arquivo cabeçalho para a classe Processos
 */

#include <SDL/SDL.h>
#include <SDL/SDL_ttf.h>
#include "Video.h"
#include "Audio.h"
#include "MapaTeclas.h"
#include "Estado.h"
#include "EstadoInicial.h"
#include "EstadoJogando.h"
#include "Relogio.h"

#ifndef _PROCESSOS_H_
#define _PROCESSOS_H_

using namespace std;

class Processos
{
   private:

   int quit;
   SDL_Event evento;
   MapaTeclas *tecla;
   Video *janela;
   Audio *audio;
   Estado *estadoCorrente;
   Relogio *relogio;

   /*métodos privados*/
   int pressionarTecla(SDL_Event *evento);
   void soltarTecla(SDL_Event *evento);

   public:

   /*Processos diversos*/
   void trocarEstado(int retorno);
   void iniciarSistemas(void);
   void encerrarSistemas(void);

   /*métodos de eventos*/
   int processaEvento(SDL_Event *evento);

   /*método principal*/
   void Jogar(void);
   Processos(void);
   ~Processos(void);
};

#endif

